<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数的声明及调用</title>
</head>

<body>
    <script>
        alert(123);
        // 函数：一堆完成某个特定功能的代码

        // 声明函数(定义函数)---function关键字声明
        // function 函数名(){//一堆代码---函数体}
        // 函数调用
        // 函数名()
        //
        // 声明函数时，函数{}中的代码不会执行的
        // 调用函数式，才会执行函数中的代码
        //
        // 封装了一个做饭的函数
        // function cook() {
        //     console.log('洗菜');
        //     console.log('切菜');
        //     console.log('炒菜');
        //     console.log('淘米');
        //     console.log('煮饭');
        // }

        // // 早上
        // cook();

        // // 中午
        // cook();

        // // 晚上
        // cook();

        // 2.声明函数---表达方式声明函数
        // 函数不取名字，将函数作为一个值(表达式)，赋值给一个变量
        // 变量就是函数的名字
        var fn = function() {
            console.log('洗菜');
            console.log('切菜');
            console.log('炒菜');
            console.log('淘米');
            console.log('煮饭');
        };

        // fn();
        // fn();

        // 3.匿名函数及匿名函数自调用
        // function(){
        //     console.log('洗菜');
        //     console.log('切菜');
        //     console.log('炒菜');
        //     console.log('淘米');
        //     console.log('煮饭');
        // }

        // 将匿名函数 使用小括号括起来，表示是一个整体
        // 后面加一堆小括号，表示函数的调用
        // 匿名函数自调用(立即调用) --- 特点：只能调用一次

        (function() {
            console.log('洗菜');
            console.log('切菜');
            console.log('炒菜');
            console.log('淘米');
            console.log('煮饭');
        })(); // 调用

        // 好处
        var num = 10;
        (function() {
            var num = 100;
            console.log(num);
        })();

        console.log(num);
    </script>
</body>

</html>